#include "BulletCollision/CollisionShapes/btTriangleIndexVertexMaterialArray.h"
#ifdef __cplusplus
extern "C" {
#endif
btTriangleIndexVertexMaterialArray* bullet_NewbtTriangleIndexVertexMaterialArray(){
	btTriangleIndexVertexMaterialArray* wrap_out = new btTriangleIndexVertexMaterialArray();
	return wrap_out;
}

btTriangleIndexVertexMaterialArray* bullet_NewbtTriangleIndexVertexMaterialArray1(int numTriangles,int* triangleIndexBase,int triangleIndexStride,int numVertices,double* vertexBase,int vertexStride,int numMaterials,unsigned char* materialBase,int materialStride,int* triangleMaterialsBase,int materialIndexStride){
	int c_arg_numTriangles=numTriangles;
	int * c_arg_triangleIndexBase=(int *)(void*)(triangleIndexBase);
	int c_arg_triangleIndexStride=triangleIndexStride;
	int c_arg_numVertices=numVertices;
	btScalar * c_arg_vertexBase=(btScalar *)(void*)(vertexBase);
	int c_arg_vertexStride=vertexStride;
	int c_arg_numMaterials=numMaterials;
	unsigned char * c_arg_materialBase=(unsigned char *)(void*)(materialBase);
	int c_arg_materialStride=materialStride;
	int * c_arg_triangleMaterialsBase=(int *)(void*)(triangleMaterialsBase);
	int c_arg_materialIndexStride=materialIndexStride;
	btTriangleIndexVertexMaterialArray* wrap_out = new btTriangleIndexVertexMaterialArray(c_arg_numTriangles,c_arg_triangleIndexBase,c_arg_triangleIndexStride,c_arg_numVertices,c_arg_vertexBase,c_arg_vertexStride,c_arg_numMaterials,c_arg_materialBase,c_arg_materialStride,c_arg_triangleMaterialsBase,c_arg_materialIndexStride);
	return wrap_out;
}

void bullet_btTriangleIndexVertexMaterialArray_addMaterialProperties(btTriangleIndexVertexMaterialArray* c_this,btMaterialProperties* mat,PHY_ScalarType triangleType){
	btMaterialProperties const& c_arg_mat=(btMaterialProperties const&)(*mat);
	PHY_ScalarType c_arg_triangleType=triangleType;
	c_this->addMaterialProperties(c_arg_mat,c_arg_triangleType);
}

btMaterialProperties* bullet_NewbtMaterialProperties(){
	btMaterialProperties* wrap_out = new btMaterialProperties();
	return wrap_out;
}

unsigned char** bullet_btMaterialProperties_GetFieldOfM_materialBase(btMaterialProperties* c_this){
	return (unsigned char**)(&c_this->m_materialBase);
}

int bullet_btMaterialProperties_GetFieldOfM_materialStride(btMaterialProperties* c_this){
	return (int)(c_this->m_materialStride);
}

PHY_ScalarType bullet_btMaterialProperties_GetFieldOfM_materialType(btMaterialProperties* c_this){
	return (PHY_ScalarType)(c_this->m_materialType);
}

int bullet_btMaterialProperties_GetFieldOfM_numMaterials(btMaterialProperties* c_this){
	return (int)(c_this->m_numMaterials);
}

int bullet_btMaterialProperties_GetFieldOfM_numTriangles(btMaterialProperties* c_this){
	return (int)(c_this->m_numTriangles);
}

unsigned char** bullet_btMaterialProperties_GetFieldOfM_triangleMaterialsBase(btMaterialProperties* c_this){
	return (unsigned char**)(&c_this->m_triangleMaterialsBase);
}

int bullet_btMaterialProperties_GetFieldOfM_triangleMaterialStride(btMaterialProperties* c_this){
	return (int)(c_this->m_triangleMaterialStride);
}

PHY_ScalarType bullet_btMaterialProperties_GetFieldOfM_triangleType(btMaterialProperties* c_this){
	return (PHY_ScalarType)(c_this->m_triangleType);
}

#ifdef __cplusplus
}
#endif
